草庐IT

MySQL 限制、组和 AVG 查询

全部标签

mysql - 软删除级联不起作用

目标:如果用户在软删除中被标记为已删除,则他的日历也应被标记为已删除。结构:typeUserstruct{gorm.ModelUsernamestringFirstNamestringLastNamestringCalendarCalendar}typeCalendarstruct{gorm.ModelNamestringUserIDuint}约束:db.Model(&Calendar{}).AddForeignKey("user_id","users(id)","CASCADE","CASCADE")问题:硬删除有效:用户和他的日历都被删除(记录消失)db.Exec("Deletef

mongodb - 如何在使用 go 的 mongodb 查询中使用 $or 和 $lookup?

我想使用$or和$lookup从mongodb文档中获取数据记录。这是我为断言所做的查询:-pipeline1:=[]bson.M{{"$lookup":bson.M{"from":"comment","localField":"_id","foreignField":"blog_id","as":"comments"}},{"$addFields":bson.M{"comments":bson.M{"$size":"$comments"}}},}pipe1:=getCollection.Pipe(pipeline1)在上面的查询中,它将首先计算记录并添加具有特定数据的字段。但是现在我

go - Gin-Gonic 限制路由

我的webapp有滥用的手段,用户可以访问他们不应该访问的东西,例如127.0.0.1/users/1&127.0.0.1/users/2&127.0.0.1/users/3等等,其中显示了用户的注册电子邮件、ip等(通过JSON,因此Web服务器可以返回自定义消息、问候语,并允许用户在配置文件设置中编辑帐户数据)这是我的路线:forum.GET("/users/:user_id",routeFunc(UsersGET))我正在使用Gin-GonicHTTP框架创建一个虚拟论坛,有人可以告诉我如何阻止用户访问/users/路由,同时允许实际的网络服务器自由使用吗?也许将我链接到正确的方

mysql - Ubuntu升级后Golang MySQL连接超时

我在使用golang项目从MySQL数据库获取数据时遇到问题。在我从Ubuntu16.04升级到Ubuntu18.04.01之前,这个项目一直没有问题。应用程序现在在连接到数据库时超时。我的第一个想法是在16.04到18.04的升级过程中出现了问题。为了证明这一点,我启动了一个运行16.04的新虚拟机,执行了“do-release-upgrade”并将其升级到18.04。但是在这个VM上,我的应用程序运行良好,没有问题。我不知道从这里到哪里去解决正在发生的问题。下面是两种配置的总结。VM(工作)和服务器(不工作)如下;Ubuntu18.04.01LTSx86_64内核4.15.0-34

mongodb - 如何使用 golang 验证查询 mongodb 中的时间

在这里,我正在构建一个查询以从数据库中获取预订,我正在对其进行查询,但根据条件,我想构建一个查询并在时间字段上设置一个条件,如果时间不等于小于零则它将不加入查询条件。以下是我正在使用的条件,我想验证时间:-mongoSession:=ConnectDb()defermongoSession.Close()sessionCopy:=mongoSession.Copy()defersessionCopy.Close()getCollection:=sessionCopy.DB(Database).C(Collection)condition:=bson.M{"status":1,"cate

有 OR 查询的 gorm

我一直在生成一个在运行时动态创建的查询。我想创建一个having查询,中间带有OR,例如SELECTnameFROM`user_group`WHERE((group_key='age'ANDgroup_value='20'))OR((group_key='division'ANDgroup_value='accounting'))OR((group_key='age'ANDgroup_value='22'))OR((group_key='division'ANDgroup_value='kitchen'))GROUP_BYnameHAVING((SUM(group_key='age'A

mongodb - mgo - 查询性能似乎一直很慢(500-650 毫秒)

我的数据层大量使用Mongo聚合,平均而言,查询需要500-650毫秒才能返回。我正在使用mgo。下面显示了一个示例查询函数,它代表了我的大部分查询的样子。func(ruserRepo)GetUserByID(idstring)(User,error){info,err:=db.Info()iferr!=nil{log.Fatal(err)}session,err:=mgo.Dial(info.ConnectionString())iferr!=nil{log.Fatal(err)}defersession.Close()varuserUserc:=session.DB(info.Db

mysql - 原子更新和备份 ON DUPLICATE KEY insert else - golang sql 语句

在golang中组合两个语句(INSERT或(BACKUP和UPDATE))并自动执行它们的最佳方式是什么?我发现了这个类似的问题:https://codereview.stackexchange.com/questions/186909/query-select-and-insert-if-not-exists?newreg=067063956a834327883542c3171a22d4但是解决方案没有满足以下要求中的2个:对DUPLICATEKEY的值进行备份,使用标准SQL不使用存储过程但是保持原子性。 最佳答案 这更像是一

mysql5.7与8.0区别、8.0新特性

1、索引隐藏索引:当一个索引隐藏时不被查询优化器所使用,用于判断索引的有效性SHOWINDEXFROMts_item_ratio_calculate_result;ALTERTABLEts_item_ratio_calculate_resultALTERINDEXidx_item_codeINVISIBLE;ALTERTABLEts_item_ratio_calculate_resultALTERINDEXidx_item_codeVISIBLE;降序索引:开始真正支持降序索引,以往的MySQL虽然支持降序索引,但是写盘的时候依然是升序保存。MySQL8.0中则是真正的按降序保存(分别在mys

mongodb - 如何制定正确的mongo查询以获取正确格式的记录

这里我想做一个根据parent绑定(bind)数据的查询。我收到以下对象:{"_id":1,"name":"home","slug":"home","parent":0,"description":"thiswilldirectyouonhomepage","order":1,"taxonomy":"nav_bar"}{"_id":2,"name":"Links","slug":"links","parent":0,"description":"thiswilldirectyouonhomepage","order":2,"taxonomy":"nav_bar"}{"_id":3,"n